Skip to content

DPL Analysis: standalone AOD reader which by-passes root - #16019

Merged
ktf merged 1 commit into
AliceO2Group:devfrom
ktf:pr16019
Nov 1, 2026
Merged

ktf merged 1 commit into
AliceO2Group:devfrom
ktf:pr16019

Conversation

@ktf

@ktf ktf commented Oct 28, 2026

Copy link
Copy Markdown
Member

This abstract the reading of I/O files from TFile, and introduces a new
plugin which is able to read them without using ROOT at all. The goal of this
is to demonstrate:

  • reduced dependency on ROOT for I/O, getting rid of the interpreter overhead
  • optimise access patterns based on the known AO2D structure, reducing the number of stats
  • reduce memory usage by decompressing stream on the fly, rather than going through multiple tbuffers
  • parallel decompression of baskets
  • prefetching of dataframes
  • support for https without depending of webdav libraries

@alibuild

alibuild commented Oct 28, 2026 •

Copy link
Copy Markdown
Collaborator

Error while checking build/O2/fullCI_slc9 for 89a28ec at 2026-10-28 20:45:

## sw/BUILD/O2-latest/log
CMake Error at /sw/slc9_x86-64/CMake/v4.1.4-6/share/cmake-4.1/Modules/FindPkgConfig.cmake:639 (message):
ninja: error: rebuilding 'build.ninja': subcommand failed

Full log here.

@alibuild

alibuild commented Oct 29, 2026 •

Copy link
Copy Markdown
Collaborator

Error while checking build/O2/fullCI_slc9 for b74a937 at 2026-10-30 09:11:

## sw/BUILD/ThePEG-latest/log
collect2: error: ld returned 1 exit status


## sw/BUILD/o2checkcode-latest/log
--
========== List of errors found ==========
++ GRERR=0
++ grep -a -v clang-diagnostic-error error-log.txt
++ grep -a ' error:'
/sw/SOURCES/O2/slc9_x86-64-slc9_x86-64/0/Framework/AODNative/tools/inspect.cxx:78:90: error: escaped string literal can be written as a raw string literal [modernize-raw-string-literal]
/sw/SOURCES/O2/slc9_x86-64-slc9_x86-64/0/Framework/AODNative/tools/inspect.cxx:79:16: error: escaped string literal can be written as a raw string literal [modernize-raw-string-literal]
++ [[ 0 == 0 ]]
++ exit 1
--

Full log here.

@ktf
ktf force-pushed the pr16019 branch 4 times, most recently from 7fb8b13 to 1109e97 Compare November 1, 2026 09:06
This abstract the reading of I/O files from TFile, and introduces a new
plugin which is able to read them without using ROOT at all. The goal of this
is to demonstrate:

- reduced dependency on ROOT for I/O, getting rid of the interpreter overhead
- optimise access patterns based on the known AO2D structure, reducing the number of stats
- reduce memory usage by decompressing stream on the fly, rather than going through multiple tbuffers
- parallel decompression of baskets
- prefetching of dataframes
- support for https without depending of webdav libraries
@ktf

ktf commented Nov 1, 2026 •

Copy link
Copy Markdown
Member Author

Tested on hyperloop in all its configurations, including validating bit to bit equality of the histograms for the O2 Integration tests. The new plugin is actually disabled by default so merging this is as safe as we can get for this kind of changes. A subsequent PR, probably tomorrow, will make "auto" the default and enable the new backend.

XRootD remote access tested locally, with 4x performance gain for some I/O intensive analysis.

@ktf
ktf merged commit 8c8505b into AliceO2Group:dev Nov 1, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants